use std::{cell::RefCell, rc::Rc};

use ash::vk;

use crate::{vulkan::{vk_utils::utils_info, VkContext, vk_struct::VkTexture}, VK_CHECK_UNSAFE, VK_LOGP, VK_LOGD};

use self::{post_render_pass::PostRenderPass, mesh_render_pass::MeshRenderPass};

use super::RenderSystem;

pub mod mesh_render_pass;
pub mod post_render_pass;

#[derive(Clone, Default)]
pub struct Attachment {
    texture         : VkTexture,
    clear_value     : vk::ClearValue,
    description     : vk::AttachmentDescription
}

/// 软件层面的RenderPass和硬件层面的RenderPass并不相同（就像软件层面的Pipeline和硬件层面的Pipeline一样）
/// 归属于一个RenderPass的资源很多，具体可看创建的过程
pub struct RenderPass {

}